package com.hanserwei.mydemo.closure;

public class ClosureDemo02 {
    static void highOrder(Lambda lambda) {
        System.out.println(lambda.op(1));
    }

    public static void main(String[] args) {
        int x = 10;
        highOrder((int y) -> x + y); //会报错！函数对象 (int y) -> x + y 与它外部的变量 x 形成了闭包。
        // 那么这个x就必须是final的或者effect final的
        // x = 20;
    }

    @FunctionalInterface
    interface Lambda {
        int op(int y);
    }
}
